1. Field of the Invention
This invention relates generally to data processing. More particularly this invention relates to graphical user interfaces. Even more particularly, this invention relates to a system and method of automatically managing the display of objects in a graphical user interface.
2. Background of the Invention
Graphical user interfaces have improved the ease with which many tasks may be accomplished on a computer. In a traditional text-based user interface, a user would have to remember the file name and path of the application, and the arguments given to that application in order to execute it. In a graphical user interface, the user need only activate an icon that represents the application and select the arguments when prompted to execute that application. Since the properties assigned to the graphic icon link it to the executable file and specify its complete directory path, there is no need to memorize that information. Microsoft Corporation""s WINDOWS(trademark) and Apple Computer, Inc.""s MacIntosh(trademark) operating systems are examples of successful graphical user interfaces.
Many of these graphical user interfaces use a desktop metaphor as a working environment. With a desktop metaphor, the user interacts with icons and other graphical objects as if they resided on a real desktop. The user may add, remove, and reposition these graphical objects by using a mouse, or other pointing device. Furthermore, the user may use the pointing device to select graphical objects that will run certain programs, or edit certain files.
Unfortunately, not all the programs and files are represented by graphical objects residing on the computer desktop. The large number of programs and files available to the user makes display of a graphical representation of each of them impractical. The computer desktop would be horribly cluttered and/or the graphical representations too small to convey any meaningful information about the program or file they represent.
The solution to this problem chosen by modern graphical user interfaces is to only represent a small number of frequently used programs or files on the computer desktop. The files and programs represented are initially chosen by the authors of the graphical user interface, but may be changed by the user. The rest of the programs and files accessible to the user must be selected through the use of less convenient means such as pull-down or pop-up menus, dialog boxes, and windows showing nested folders that represent a directory tree.
A shortcoming of this solution is that a frequently used program or file may not be represented on the computer desktop. This forces the user to use less efficient means that require many keystrokes or mouse clicks each time that frequently used program or file is accessed. Another shortcoming of this solution is that rarely used programs or files may be represented on the computer desktop. This contributes to clutter and visual confusion making it more likely that a user will not change the representations on the computer desktop to more accurately reflect commonly used programs and files.
Accordingly, there is a need in the art for a method and system of automatically creating and removing graphical objects from a computer desktop metaphor. Such a method should maintain the computer desktop such that it accurately reflects the files and programs being most frequently accessed by the user. Also, the system should give the user the ability to override its actions to account for personal taste. And finally, such a method should be intuitive and easy to use even for an unsophisticated user.
A part of the operating system, or a part of an application, or a separate low priority process, continually runs in the background of a computer and monitors the accessing of programs and files initiated by the user through a graphical user interface (GUI). When a user accesses a program to execute it, or otherwise accesses a file via the GUI, that event is logged in a desktop event log. The desktop event log includes a reference to the program, or file, and the date and time of the access. If the number of accesses exceeds a specified threshold over a specified period of time, a graphical object representing that program, or file will be automatically or semi-automatically placed on the computer desktop. The location of the object may be determined automatically, or be chosen by the user.
A part of the operating system, or a part of an application, or a separate low priority process, continually runs in the background and monitors the usage of graphical objects that are on the computer desktop. When a particular object is not used for a specified amount of time, or not used frequently enough over a specified period of time, that object is removed from the computer desktop. The user may be queried before removal to determine if the object should be retained on the computer desktop. When an object is removed, it may be completely removed, or merely relocated to a temporary location. The temporary location may be represented on the computer desktop by a graphical object, called a stack, that is analogous to a stack of papers accumulating on a real desktop. The stack provides a convenient location for the user to view objects that have been removed from the computer desktop.